iT邦幫忙

2024 iThome 鐵人賽

DAY 6
1

在 PowerShell 中,管線(Pipeline)是一種將多個命令串接在一起的方式,讓前一個命令的輸出直接作為下一個命令的輸入。這與其他命令列介面的管線概念類似,但 PowerShell 的獨特之處在於它傳遞的是物件,而非純文字。

串接命令

PowerShell 透過管線( pipeline )將命令彼此串接在一起。管線提供了一種方法,讓一個命令將它的輸出結果傳遞( pass )或傳送( pipe )到另外一個命令,這樣第二個命令就有東西可以處理。

多個指令透過管線的範例

範例一:串接 Where-Object 進行過濾。

Get-Process 是第一個指令,目的是取得本機電腦上正在執行的進程後產生一個 Process 物件的列表。
https://ithelp.ithome.com.tw/upload/images/20240920/20168708D7gb6J3Kl5.png
接著透過 | ( pipeline ) 將剛剛 Get-Process 產生出來的物件列表傳遞給下一個命令 Where-Object ,它根據 predicate (花括弧)裡面的條件回覆 True 或 False,進而產生符合條件的 Object 後 output 出來。
Where-Object { $\_.CPU -gt 2000 }

  • $_:代表當前處理的每個進程對象。
  • $_.CPU:訪問進程對象的 CPU 属性,即進程已使用的 CPU 時間(以秒为單位)。
  • -gt 2000:條件運算符,表示“大於 2000”。

https://ithelp.ithome.com.tw/upload/images/20240920/20168708HD6dN0nr7m.png

範例二:將結果匯出成檔案

PS /Users/kanglin> Get-Process | Export-CSV procs2.CSV
PS /Users/kanglin> code ./procs2.CSV

Export-CSV 是一個原生的 PowerShell cmdlet,它知道如何將 Get-Process 產生的結果轉化成標準的 CSV 檔案。

結果

https://ithelp.ithome.com.tw/upload/images/20240920/201687081dpv7CREiS.png

範例三:將範例2 的 CSV 檔案 import,並呈現在終端機畫面上

PS /Users/kanglin> Import-Csv ./procs2.CSV | Format-Table | more

Import-CSV

Creates table-like custom objects from the items in a character-separated value (CSV) file.

Format-Table

Formats the output as a table.
https://ithelp.ithome.com.tw/upload/images/20240920/20168708lCjP9bvuGd.png

明日主題

Day 7 - 管線:串接命令 Part 2


上一篇
Day 5 - 使用 Provider
下一篇
Day 7 - 管線:串接命令 Part 2
系列文
《30天挑戰精通 PowerShell:從 Windows Server 到 Azure DevOps 自動化之旅》30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言